In a typical computer environment, a Local Area Network (“LAN”) allows for one or more computer servers to be connected to several computers such that the resources of each server are available to each of the connected computers. The LAN is typically comprised of networking equipment such as routers, hubs, switches, etc. In such a configuration, a dedicated keyboard, video monitor and mouse may be employed for each computer and computer server.
To maintain proper operation of the LAN, the system administrator must maintain and monitor the individual networking equipment, servers, and computers. This maintenance frequently requires the system administrator to perform numerous tasks from a user console connected to the networking equipment, server, or computer. For example, to reboot a computer or to add or delete files, the system administrator is often required to operate the server or computer from its local user console, which may be located at a substantial distance from the system administrator's computer and from other computers or servers connected to the LAN. Therefore, to accomplish the task of system administration, the system administrator must often physically relocate to access the local user consoles of remotely located servers and computers. As an alternative, dedicated cables may be installed from each remotely located server and computer to the system administrator's user console to allow the system administrator to fully access and operate the remote computer equipment. However, this alternative requires substantial wiring and wire harnessing, both of which may require tremendous cost. Additionally, as the distance between the system administrator's user console and the remote computer equipment increases, a decrease in the quality of the transmitted signal often results. Thus, dedicated cables between the system administrator's user console and remote computer equipment may not be a feasible alternative.
In some situations, it is desirable to manage the networking equipment, servers, and computers located at a location remote from the system administrator. If the distance is great enough, the Internet is commonly utilized to control computers from a remote location. For example, a software program such as pcAnywhere may be utilized to access a remote computer over the Internet or a LAN utilizing the keyboard, video monitor, and cursor control device (e.g., a mouse) attached to a local user workstation. Remote computer access programs, such as pcAnywhere, typically require that host software is installed on the remote computer and client software is installed on the user workstation. To access a remote computer, a user of the user workstation selects the desired remote computer from a list and enters the appropriate username and password. Once access has been granted to the remote computer, the user utilizes the keyboard, video monitor, and cursor control device attached to the local user workstation to access and operate the remote computer.
Hardware solutions also exist for operating a remote computer from a user workstation over the Internet or via a modem. In contrast to the software solutions, the hardware solutions do not typically require host and/or client software. Instead, the hardware solutions typically utilize a keyboard, video monitor, and mouse (“KVM”) switch which is accessible over the Internet or LAN via a common protocol, such as transfer control protocol/Internet protocol (“TCP/IP”). The hardware solutions may also utilize a modem to connect to the Internet or to communicate through the public telephone network. Generally, a user or system administrator access the remote computers attached to the KVM switch utilizing an Internet browser or client software associated with the KVM switch. Once the remote computer has been selected, the remote computer's video signal is routed to the user workstation's video monitor and a user may then utilize a keyboard and/or mouse to control the remote computer. The KVM switch may additionally include a connection to the power source of the remote computer for a hard reboot in case of system failure.
The aforementioned hardware and software solutions generally utilize a compression algorithm to reduce the necessary bandwidth required to transmit the video signals. For example, the remote network management system of the present invention uses the compression algorithm disclosed in application Ser. No. 10/233,299, which is incorporated herein by reference, to reduce and compress the digital data that must be transmitted to the remote computers and/or video display devices. Generally, video signals generated by a personal computer have both spatial and interframe redundancies. For example, in a near idle personal computer, the only change between successive frames of video might be the blinking of a cursor. Even as a user types a document, a majority of the screen does not change over a period of time. Hence, the compression algorithm used by the present invention takes advantage of these redundancies, both between successive frames of video and within each individual frame, to reduce the amount of digital video signal data that is transmitted. Reducing the amount of digital data transmitted over the communication medium decreases communication time and decreases the required bandwidth.
Most forms of video compression known in the art require complicated calculations. For example, Moving Pictures Experts Group (“MPEG”) video compression algorithms use the discrete cosine transform. Also, the MPEG standard relies on the recognition of “motion” between frames, which requires calculation of motion vectors that describe how portions of the video image change over a period of time. Since these algorithms are calculation intensive, they either require relatively expensive hardware that performs such calculations quickly or extended transmission times that allow for slower hardware to complete the calculations.
In addition to complexity, many existing video compression techniques are lossy (i.e., they do not transmit all of the video signal information in order to reduce the required bandwidth). Typically, such lossy techniques either reduce the detail of a video image or reduce the number of colors utilized. Although reducing the number of colors could be part of an adequate compression solution for some computer management systems applications, in many other applications, such a result defeats the intended purposes of the computer management system.
A keyboard, video monitor, and mouse (“KVM”) switching system may be utilized to allow one or more user workstations to select and control any one of a plurality of remote computers via a central switching unit. Such systems are well known in the art and have been used by system administrators for at least ten years.
Digital KVM switches traditionally use a circuit block called a video digitizer to convert high-speed red, green, and blue analog video signals to a digital representation. At the center of traditional circuits is a video speed A/D converter. Support circuitry surrounding this chip is complex, since the video digitizer needs to handle a variety of pixel clocks and phase shifts, and also needs to detect a blank video edge when switching between different computers or servers, which are the source of the signals.
For a quality video representation, the video digitizer depends on the detection of horizontal and vertical synchronization signals and adjusts the phase shift and pixel clock for each target video signal. This adjustment must occur regardless of the video cards and cable lengths utilized in the KVM switch system. The phase shift adjustment is critical, and if not accurate, will introduce noise into the digital representation which cannot be removed.
Prior designs of digital KVM switches use a triple A/D converter and digital data processor, or triple A/D converter and software to do different adjustments. However, the adjustment time often takes a few seconds when operators switch from one computer to another. Also, many electronic parts are needed to implement these functions.
The following references, which are discussed below, were found to relate to the field of computer management systems: Asprey U.S. Pat. No. 5,257,390 (“Asprey '390 patent”), Asprey U.S. Pat. No. 5,268,676 (“Asprey '676 patent”), Asprey U.S. Pat. No. 5,353,409 (“Asprey '409 patent), Perholtz et al. U.S. Pat. No. 5,732,212 (“Perholtz”), Chen U.S. Pat. No. 5,978,389 (“Chen '389 patent”), Chen U.S. Pat. No. 6,119,148 (“Chen '148 patent”), Fujii et al. U.S. Pat. No. 6,138,191 (“Fujii”), Odryna et al. U.S. Pat. No. 6,333,750 (“Odryna”), Beasley U.S. Pat. No. 6,345,323 (“Beasley”), Schneider et al. U.S. Pat. No. 6,539,418 (“Schneider”), and Wilder et al. U.S. Pat. No. 6,557,170 (“Wilder”).
The Asprey '390 patent discloses an extended range communications link for coupling a computer to a mouse, keyboard, and/or video monitor located remotely from the computer. The end of the link that is coupled to the computer has a first signal conditioning network (i.e., a network of circuitry that dampens the ringing and reflections of the video signals and biases them to a predetermined voltage level) that conditions the keyboard, video monitor and mouse signals. Conditioning the video monitor signals includes reducing amplitude in order to minimize the amount of “crosstalk” that is induced on the conductors adjacent to the video signal conductors during transmission of the video signals. This first signal conditioning network is coupled to an extended range cable having a plurality of conductors that transmits the conditioned signals, power, and logic ground potentials to a second signal conditioning network (i.e., a network of circuitry that terminates the video signals using a voltage divider and amplifier), which restores the video signals to their original amplitude and outputs them to a video monitor.
The Asprey '676 patent discloses a communications link for use between a computer and a display unit, such as a video monitor, that allows these two components to be located up to three hundred (300) feet apart. An encoder located at the computer end of the communications link receives analog red, green, and blue signals from the computer and inputs each signal to a discrete current amplifier that modulates the signal current. Impedance matching networks then match the impedance of the red, green and blue signals to the impedance of the cable and transmit the signals to discrete emitter-follower transistors located at the video monitor end of the cable. Thereafter, these signals are amplified and then inputted to a video monitor. Concurrently, the horizontal synchronization signal is inputted to a cable conductor and its impedance is not matched to the impedance of the cable, thereby allowing the conductor to attenuate the horizontal synchronization signal and reduce noise radiation.
The Asprey '409 patent discloses an extended range communications link for transmitting transistor-transistor logic video signals from a local computer to a video monitor located up to a thousand feet (1,000) from the computer. The link includes a first signal conditioning circuit (i.e., a circuit that reduces the amplitude of the video signals, biases the signals to a selected potential, and applies them to discrete conductors of an extended cable) located at the computer end of the link for conditioning the received signals and transmitting the signals via the extended cable to a second signal conditioning circuit. The second signal conditioning circuit (i.e., a circuit that utilizes a threshold or pair of thresholds to effect reconstruction of the video signals prior to applying the signals to a video monitor) receives the transmitted video signals prior to inputting the signals to the video monitor. According to the Asprey '409 patent, performance of this process reduces the appearance of high frequency video noise on the keyboard clock conductor of the transmission cable, thereby preventing keyboard errors.
Perholtz discloses a method and apparatus for coupling a local user workstation, including a keyboard, mouse, and/or video monitor, to a remote computer. Perholtz discloses a system wherein the remote computer is selected from a menu displayed on a standard personal computer video monitor. Upon selection of a remote computer by the system user, the video signals of the remote computer are digitized and transmitted to the video monitor of the local user workstation. The video signals are digitized utilizing a video CPU capable of converting the inputted analog video signals into a digital representation. The system user may also control the remote computer utilizing the local user workstation's keyboard and monitor. The Perholtz system is also capable of bi-directionally transmitting mouse and keyboard signals between the local user workstation and the remote computer. The remote computer and the local user workstation may be connected either via the Public Switched Telephone System (“PSTN”) and modems or via direct cabling.
The Chen '389 patent discloses a device for multiplexing the video output of a plurality of computers to a single video monitor. The Chen system includes three sets of switches for receiving the red, green, and blue components of the video signals from each computer. To select the video output of a specific computer for display on the video monitor, a user inputs two video selecting signals into a control signal generating circuit. Depending upon the inputted video selecting signals, the control signal generating circuit produces an output signal corresponding to the selected video output. Thereafter, a control signal is generated that indexes the three sets of switches to switch the video signals being output by the desired computer to the single video monitor. The three sets of switches transfer the incoming video signals to three sets of switch circuits and current amplifying circuits that provide input and output impedance matching, respectively. The tuned video signals are then displayed on the single video monitor.
The Chen '148 patent discloses a video signal distributor that receives, processes, and distributes video signals received from one or more computers to a plurality of video monitors. The video signal distributor includes three transistor-based, voltage-amplifying circuits to individually amplify the red, green and blue video signals received from each computer prior to transmitting these signals to a video monitor. The video signal distributor also includes a synchronization signal buffering device that receives horizontal and vertical synchronization signals from each computer and generates new synchronization signals based upon the quantity of video signals that are output to the video monitors.
Fujii discloses a system for selectively operating a plurality of computers that are connected to one common video monitor. The Fujii system includes a data input device for entering data in any one of the plurality of connected computers. The system also includes a main control circuit, which is connected to the data input device, and a selection circuit for providing the entered data and receiving the video signals from the selected computer. A user selects a remote computer by supplying the command code associated with the desired remote computer utilizing the keyboard and/or mouse. A selection circuit receives the inputted commands and identifies the selected computer. The selection circuit then sends a signal indicative of the selected remote computer to a main control circuit, which provides communication between the keyboard, video monitor, and mouse and the selected remote computer.
Similar to Perholtz, Beasley discloses a specific implementation of a computerized switching system for coupling a local keyboard, mouse and/or video monitor to one of a plurality of remote computers. In particular, a first signal conditioning unit includes an on-screen programming circuit that displays a list of connected remote computers on the local video monitor. To activate the menu, a user depresses, for example, the “print screen” key on the local keyboard. The user selects the desired computer from the list using the local keyboard and/or mouse.
According to Beasley, the on-screen programming circuit requires at least two sets of tri-state buffers, a single on-screen processor, an internal synchronization generator, a synchronization switch, a synchronization polarizer, and overlay control logic. The first set of tri-state buffers couples the red, green, and blue components of the video signals received from the remote computer to the video monitor. That is, when the first set of tri-state buffers are energized, the red, green, and blue video signals are passed from the remote computer to the local video monitor through the tri-state buffers. When the first set of tri-state buffers are not active, the video signals from the remote computer are blocked. Similarly, the second set of tri-state buffers couples the outputs of the single on-screen processor to the video monitor. When the second set of tri-state buffers is energized, the video output of the on-screen programming circuit is displayed on the local video monitor. When the second set of tri-state buffers is not active, the video output from the on-screen programming circuit is blocked. Alternatively, if both sets of tri-state buffers are energized, the remote computer video signals are combined with the video signals generated by the on-screen processor prior to display on the local video monitor.
The on-screen programming circuit disclosed in Beasley also produces its own horizontal and vertical synchronization signals. To dictate which characters are displayed on the video monitor, the CPU sends instructional data to the on-screen processor. This causes the on-screen processor to retrieve characters from an internal video RAM for display on the local video monitor.
The overlaid video image produced by the on-screen processor, a Motorola MC141543 on-screen processor, is limited to the size and quantity of colors and characters that are available with the single on-screen processor. In other words, the Beasley system is designed to produce an overlaid video that is sized for a standard size computer monitor (i.e., not a wall-size or multiple monitor type video display) and is limited to the quantity of colors and characters provided by the single on-screen processor.
During operation of the Beasley system, a remote computer is chosen from the overlaid video display. Thereafter, the first signal conditioning unit receives keyboard and mouse signals from the local keyboard and mouse and generates a data packet for transmission to a central cross point switch. The cross point switch routes the data packet to the second signal conditioning unit, which is coupled to the selected remote computer. The second signal conditioning unit then routes the keyboard and mouse command signals to the keyboard and mouse connectors of the remote computer. Similarly, video signals produced by the remote computer are routed from the remote computer through the second signal conditioning unit, the cross point switch, and the first signal conditioning unit to the local video monitor. The horizontal and vertical synchronization video signals received from the remote computer are encoded on one of the red, green or blue video signals. This encoding reduces the quantity of cables required to transmit the video signals from the remote computer to the local video monitor.
Odryna discloses a video graphics system capable of multiplexing one or more video sources to plural video display devices. The red, green, and blue components of the video signal from the video source(s) are initially converted to a digital format by three analog-to-digital converters located in a video distribution hub. The digitized video is next transmitted to a switch which transmits the digitized video to the proper remote display devices. The video distribution hub is also capable of accepting digital input from a video source.
Schneider discloses a method and system for remotely accessing and controlling a target switch or computer using a controlling computer connected to a keyboard, video monitor, and mouse. The target switch and/or computer is connected to the controlling computer via a central controller. Bi-directional keyboard and mouse signals are transmitted between the remote target switch/computer and the controlling computer. To facilitate the transmission of the bi-directional keyboard and mouse signals, the keyboard and mouse signals are digitized and serialized before transmission from the remote target switch/computer to the controlling computer and vice versa. Unidirectional video signals are also transmitted from the remote target switch/computer, through the central controller, to the controlling computer for display on a video monitor. The central controller includes a video digitizer that receives and converts the analog video signals output by the remote target switch/computer to a digital format. Schneider discloses utilizing three analog-to-digital (“A/D”) converters to convert the red, green, and blue components of the video signal to a digital format. The central controller stores the converted signals in digital form in a digital memory as digital video data. After the digital video data has been properly packetized and compressed, it is transmitted to the controlling computer. The controlling computer then depacketizes, decompresses, and converts the received video signals to an analog format for display on a video monitor.
Wilder discloses a keyboard, video monitor, mouse, and power (“KVMP”) switching system having an on screen display circuit that provides a visual means for accessing the KVMP switch. A first set of switching circuits coupled to a plurality of computers and the on screen display circuit allows a user to access and control any of the remote computers using a local keyboard, video monitor, and mouse. A second set of switching circuits coupled to the power supply of each remote computer and the on screen display circuit allows a user to control the electrical power to each remote computer. To select a remote computer using the Wilder system, a user activates the on-screen display by entering a hot key either with the keyboard and/or mouse. Initially, the on-screen display prompts the user to enter a username and password. Once the user has been verified, the user is provided a list of all attached remote computers. The user utilizes the local keyboard and mouse to select and control the power supply of the desired remote computer. Wilder incorporates a single on-screen processor for generation of the list of remote computers.
In view of the foregoing, a need clearly exists for an improved video digitizer capable of rapidly adjusting the video signal when a user switches from one remote computer to another. The improved video digitizer should also be capable of correcting many problems associated with video transmission in KVM switches, such as phase shift adjustments, video mode detection, etc.